﻿using IRUM.TR;
using System;
using System.Windows.Forms;

namespace IRUM.UI
{
    /// <summary>
    /// 종목코드를 수신하여 DB에 저장하는 프로그램
    /// </summary>
    public partial class FormProdCode : Form
    {
        t9943 futureCode;
        t9944 optionCode;

        public FormProdCode()
        {
            InitializeComponent();
        }

        private void FormProdCode_Load(object sender, EventArgs e)
        {
            //DB에 있는 데이터를 가져온다.
            this.prodCodeTableAdapter.Fill(this.iRUMDataSet.ProdCode);
            futureCode = new t9943();
            futureCode.OnReceived += futureCode_OnReceived;

            optionCode = new t9944();
            optionCode.OnReceived += optionCode_OnReceived;
        }

        void optionCode_OnReceived(object s, ProdMasterArgs e)
        {
            foreach (IRUM.TR.ProdCode p in e.RetData)
            {
                //DB에 넣어줌. - 단축코드, 종목명, 확장코드, 만기년월
                prodCodeTableAdapter.sp_ProdCode_i("O", p.shcode, p.hname, p.expcode, p.expire);
            }

            //옵션 종목코드까지 모두 받았으면 DB에 저장된 데이터를 다시 받아와서 보여준다.
            this.prodCodeTableAdapter.Fill(this.iRUMDataSet.ProdCode);
            Refresh();
        }

        void futureCode_OnReceived(object s, ProdMasterArgs e)
        {
            foreach (IRUM.TR.ProdCode p in e.RetData)
            {
                //DB에 넣어줌. - 단축코드, 종목명, 확장코드, 만기년월
                prodCodeTableAdapter.sp_ProdCode_i("F", p.shcode, p.hname, p.expcode, p.expire);
            }

            optionCode.Request();
        }

        private void btnQuery_Click(object sender, EventArgs e)
        {
            futureCode.Request();
        }
    }
}
